Reconfigurable Computing Application Frameworks
نویسندگان
چکیده
FPGA-based Configurable Computing Machines (CCMs) offer powerful and flexible general-purpose computing platforms. However, development for FPGA-based designs using modern CAD tools is geared mainly toward an ASIC-like process. This is inadequate for the needs of CCM application development. This paper discusses an application framework for developing CCM-based applications beyond just the hardware configuration. This framework leverages the advantages of CCMs (availability, programmability, visibility, and controllability) to help create CCM-based applications throughout the entire development process (i.e. design, debug, and deploy). The framework itself is deployed with the final application, thus permitting dynamic circuit configurations that include data folding optimizations based on user input. The resulting system aids in creating applications that are potentially more intuitive, easier to develop, and better performing. An example application demonstrates the use of the application framework and the potential benefits. 1 Application Acceleration Using FPGAbased CCMs Configurable computing machines (CCMs) are FPGAbased processing and computing platforms. Figure 1 shows the components of a typical CCM architecture. CCMs provide a versatile and powerful computing platform that may be integrated with a host system. The FPGAs in a CCM can be configured by the host system to perform virtually any type of computation or process. This makes CCMs attractive computing platforms with flexibility comparable to that of microprocessor-based systems and performance comparable to that of ASIC designs. ∗This work is supported by the Defense Advanced Research Projects Agency (DARPA) and is funded via Grant No. F33615-99-C-1502. FPGA Processing Element Additional Logic (e.g. DSPs, CODEC, RAMDAC, etc.) Host Interface (PCI, SCSI, etc.) FPGA Processing Element Memory Memory Memory FPGA Processing Element Figure 1. Configurable Computing Machine (CCM) Block Diagram. Because CCM computation and processing occurs in hardware, applications targeted to CCMs may be able to run several times faster than if they were executed in software running on a microprocessor. In some cases, CCM-based applications may be more than an order of magnitude faster than alternative implementations[13]. CCMs are also capable of improving the performance-to-price ratio in many applications[12]. Although CCMs do offer a number of potential advantages, the cost of producing a full application for use on a CCM platform can still be high. One reason is the multiple types of design components found in a CCM-based application. (See Figure 2.) The interface drivers are often provided by the developers of the CCM hardware. However, application developers must still deal with the large tasks of developing the hardware configuration and application software. CCM−based Application Configuration Hardware Software Application Interface Drivers FPGA−Host Figure 2. The hardware and software design components of a CCM application. 2 Limitations of Current CAD Tools for CCM Application Development In order to quickly generate a new market for their products, FPGA manufacturers have relied heavily on the existing electronic design automation (EDA) and CAD tool infrastructure. By offering libraries for use with major CAD tools, or information sufficient for others to create such libraries, FPGA manufacturers have allowed designers to use their favorite EDA/CAD tools to create designs that target FPGA devices. While this strategy has allowed FPGA producers to successfully build up a large market for their products, it has also created a development system that is ASIC-oriented[8]. This ASIC-oriented nature of CAD tools has been adequate for creating FPGA designs that serve as ASIC prototypes or replacements. However, focusing only on hardware design and simulation limits development for CCM applications by ignoring the benefits of CCM features and by not supporting the software development, which is crucial to the final application deployment. The ASIC-orientation of EDA/CAD tools commonly used for FPGA configuration design results in a split development path for the hardware and software components of the application as shown in Figure 3. The disjoint, often sequential, development of the hardware design and the software design extends the time necessary to develop the whole CCM application. A combined development path, as shown in Figure 4, streamlines development of the hardware and software and reduces the complexity of the deployment stage. At this point, it should be noted that this paper is not about the automated partitioning problem for hardware/software co-design. That is, this paper is not about a tool for system specification, co-design, and co-simulation. Rather, this paper discusses methods of joining the hardware and software development environments in such a way that extends the benefits provided by an EDA tool beyond the design and debug stages of development. Although this new integrated approach to developing CCM applications can Deploy Debug Software Debug Hardware Design Hardware
منابع مشابه
A High-Level Reconfigurable Computing Platform Software Frameworks
Reconfigurable computing refers to the use of processors, such as Field Programmable Gate Arrays (FPGAs), that can be modified at the hardware level to take on different processing tasks. A reconfigurable computing platform describes the hardware and software base on top of which modular extensions can be created, depending on the desired application. Such reconfigurable computing platforms can...
متن کاملImplementation of VlSI Based Image Compression Approach on Reconfigurable Computing System - A Survey
Image data require huge amounts of disk space and large bandwidths for transmission. Hence, imagecompression is necessary to reduce the amount of data required to represent a digital image. Thereforean efficient technique for image compression is highly pushed to demand. Although, lots of compressiontechniques are available, but the technique which is faster, memory efficient and simple, surely...
متن کاملHigh Availability through Distributed Control
Cost-effective, flexible and efficient scientific simulations in cutting-edge research areas utilize huge high-end computing resources with thousands of processors. In the next five to ten years the number of processors in such computer systems will rise to tens of thousands, while scientific application running times are expected to increase further beyond the Mean-Time-To-Interrupt (MTTI) of ...
متن کاملOn the Viability of Component Frameworks for High Performance Distributed Computing: A Case Study
Software infrastructures that support metacomputing are evolving from traditional monolithic, platform-specific systems to component and service-based frameworks. In this paper we demonstrate that contrary to popular belief, such modular software systems are capable of delivering good to excellent performance, support legacy as well as new application programming paradigms, and deliver enhanced...
متن کاملReconfigurable Computing A review of the technology and its architecture
Reconfigurable computing is a computer architecture which is intended to fill the gap between the hardware and the software, achieving potentially much higher performance than software, while maintaining a higher level of flexibility than hardware. Most commonly and widely used high speed computing fabrics deployed in reconfigurable computing are field-programmable gate arrays (FPGAs). This pap...
متن کاملA Self-Reconfigurable Computing Platform Hardware Architecture
Field Programmable Gate Arrays (FPGAs) have recently been increasingly used for highly-parallel processing of compute intensive tasks. This paper introduces an FPGA hardware platform architecture that is PC-based, allows for fast reconfiguration over the PCI bus, and retains a simple physical hardware design. The design considerations are first discussed, then the resulting system architecture ...
متن کامل